package vos;

import java.util.ArrayList;
//import java.util.Date;
import java.util.UUID;

import controller.ArticuloComponente;

//consideraciones de visibilidad que tomes en cuenta
public class Articulo extends ArticuloComponente {
	// esta clase igual y no la vas a ocupar como tal si no q la vas a incluir
	// como parte de tu builder
	// aqui la pongo por separado
	// solo marco los atributos de la calse para que tengas los mismo que yo voy
	// a utilizar en lso metodos de la clase AltaArticulo
	/*attrubutes++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
	protected String ID;
	protected String sNombre;
	protected String sDescripcion;
	protected double dPrecio;

	// Constructor, las consideraciones de visibilidad q debas hacer lo dejo
	// como public
	/*Constructores+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
	public Articulo(String ID, String sNombre, String sDescripcion,double dPrecio) {
		this.ID = ID;
		this.sNombre = sNombre;
		this.sDescripcion = sDescripcion;
		this.dPrecio = dPrecio;
	}

	public Articulo(String sNombre, String sDescripcion, double dPrecio) {
		ID = crearID();
		this.sNombre = sNombre;
		this.sDescripcion = sDescripcion;
		this.dPrecio = dPrecio;

	}
	// si consideras que debe de haber otro constructor default q deje todas las
	// variable snulas pos lo ppones

	// los metodos q consideres pertinentes de poner como los gets
	// los metodos q te hagan falta pos ahi los agregas
	// igual las consideraciones de visibilidades q te parezcan
	
	
	/*Setters ang getters++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
	public String getID() {
		return this.ID;
	}

	public String getNombre() {
		return this.sNombre;
	}

	public String getDescripcion() {
		return this.sDescripcion;
	}
	
	@Override
	public double getPrecio() {
		return this.dPrecio;
	}

	// los metodos set son para realizar las busquedas de acuerdo a los
	// parametrso que pongamos

	public void setID(String ID) {
		this.ID = ID;
	}

	public void setNombre(String sNombre) {
		this.sNombre = sNombre;
	}

	public void setPrecio(double dPrecio) {
		this.dPrecio = dPrecio;
	}
	/*
	public void imprimir() {
		System.out.println(" Art.-- " + getNombre());
		System.out.println(".       Precio: " + getPrecio());
		System.out.println(".       Descripcion --" + getDescripcion());

	}*/
	/*mothods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
	public String crearID() {
		//Long ID;
		String sID = "A";
		//ID = new Date().getTime();
		//return sID.concat(String.valueOf(ID).toString());
		//System.currentTimeMillis()
		//return sID.concat(String.valueOf(System.currentTimeMillis() + Math.random()).toString());
		//Double nid = System.currentTimeMillis() * Math.random();
		String id = UUID.randomUUID().toString(); 
		
		return sID.concat(id);
	}

	@Override
	public void add(ArticuloComponente articulo) {
		// TODO Auto-generated method stub
		this.ID = ((Articulo) articulo).getID();
		this.sNombre = ((Articulo) articulo).getNombre();
		this.sDescripcion = ((Articulo) articulo).getDescripcion();
		this.dPrecio = articulo.getPrecio();
	}

	@Override
	public ArticuloComponente  remove(String Id) {
		return null;
		// TODO Auto-generated method stub
	}

	@Override
	public ArrayList<ArticuloComponente> getDetalles() {
		/*Articulo<ArticuloComponente> detalles = this;*/
		return null;
		// TODO Auto-generated method stub
	}

	@Override
	public ArticuloComponente getDetallesArticulo(String Id) {
		// TODO Auto-generated method stub
		return null;
	}
	
	

}
